package com.apikey.auth.service;

/**
 * 用户服务接口
 * 提供用户相关的基础服务，供其他系统实现具体的用户获取逻辑
 *
 * @author API Key Framework
 * @version 1.0
 */
public interface UserService {

    /**
     * 获取当前用户ID
     * 其他系统可以实现此方法来提供自己的用户获取逻辑
     * 例如：从JWT token中解析、从Session中获取、从请求头中获取等
     *
     * @return 当前用户ID，不能为null
     */
    String getCurrentUserId();

    /**
     * 根据用户ID获取用户信息
     *
     * @param userId 用户ID
     * @return 用户是否存在且有效
     */
    boolean isValidUser(String userId);

    /**
     * 获取默认用户ID
     * 当无法获取当前用户时使用的默认用户ID
     *
     * @return 默认用户ID
     */
    String getDefaultUserId();
}